home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGMISC
/
PCSSP.LZH
/
PC-SSP.ZIP
/
MATSTOR.ZIP
/
ARRAY.FOR
next >
Wrap
Text File
|
1985-11-29
|
3KB
|
87 lines
C
C ..................................................................
C
C SUBROUTINE ARRAY
C
C PURPOSE
C CONVERT DATA ARRAY FROM SINGLE TO DOUBLE DIMENSION OR VICE
C VERSA. THIS SUBROUTINE IS USED TO LINK THE USER PROGRAM
C WHICH HAS DOUBLE DIMENSION ARRAYS AND THE SSP SUBROUTINES
C WHICH OPERATE ON ARRAYS OF DATA IN A VECTOR FASHION.
C
C USAGE
C CALL ARRAY (MODE,I,J,N,M,S,D)
C
C DESCRIPTION OF PARAMETERS
C MODE - CODE INDICATING TYPE OF CONVERSION
C 1 - FROM SINGLE TO DOUBLE DIMENSION
C 2 - FROM DOUBLE TO SINGLE DIMENSION
C I - NUMBER OF ROWS IN ACTUAL DATA MATRIX
C J - NUMBER OF COLUMNS IN ACTUAL DATA MATRIX
C N - NUMBER OF ROWS SPECIFIED FOR THE MATRIX D IN
C DIMENSION STATEMENT
C M - NUMBER OF COLUMNS SPECIFIED FOR THE MATRIX D IN
C DIMENSION STATEMENT
C S - IF MODE=1, THIS VECTOR IS INPUT WHICH CONTAINS THE
C ELEMENTS OF A DATA MATRIX OF SIZE I BY J. COLUMN I+1
C OF DATA MATRIX FOLLOWS COLUMN I, ETC. IF MODE=2,
C THIS VECTOR IS OUTPUT REPRESENTING A DATA MATRIX OF
C SIZE I BY J CONTAINING ITS COLUMNS CONSECUTIVELY.
C THE LENGTH OF S IS IJ, WHERE IJ=I*J.
C D - IF MODE=1, THIS MATRIX OF SIZE N BY M IS OUTPUT,
C CONTAINING A DATA MATRIX OF SIZE I BY J IN THE FIRST
C I ROWS AND J COLUMNS. IF MODE=2, THIS N BY M MATRIX
C IS INPUT CONTAINING A DATA MATRIX OF SIZE I BY J IN
C THE FIRST I ROWS AND J COLUMNS.
C
C REMARKS
C VECTOR S CAN BE IN THE SAME LOCATION AS MATRIX D. VECTOR S
C IS REFERRED AS A MATRIX IN OTHER SSP ROUTINES, SINCE IT
C CONTAINS A DATA MATRIX.
C THIS SUBROUTINE CONVERTS ONLY GENERAL DATA MATRICES (STORAGE
C MODE OF 0).
C
C SUBROUTINES AND FUNCTION SUBROUTINES REQUIRED
C NONE
C
C METHOD
C REFER TO THE DISCUSSION ON VARIABLE DATA SIZE IN THE SECTION
C DESCRIBING OVERALL RULES FOR USAGE IN THIS MANUAL.
C
C ..................................................................
C
SUBROUTINE ARRAY (MODE,I,J,N,M,S,D)
DIMENSION S(1),D(1)
C
NI=N-I
C
C TEST TYPE OF CONVERSION
C
IF(MODE-1) 100, 100, 120
C
C CONVERT FROM SINGLE TO DOUBLE DIMENSION
C
100 IJ=I*J+1
NM=N*J+1
DO 110 K=1,J
NM=NM-NI
DO 110 L=1,I
IJ=IJ-1
NM=NM-1
110 D(NM)=S(IJ)
GO TO 140
C
C CONVERT FROM DOUBLE TO SINGLE DIMENSION
C
120 IJ=0
NM=0
DO 130 K=1,J
DO 125 L=1,I
IJ=IJ+1
NM=NM+1
125 S(IJ)=D(NM)
130 NM=NM+NI
C
140 RETURN
END